package demo33;

import java.util.concurrent.LinkedTransferQueue;

/**
 * 消费者先启动，生产者生产一个东西的时候，不扔在队列里，而是直接去找有没有消费者，有的话直接扔给消费者，
 * 若没有消费者线程，调用transfer()方法就会阻塞，调用add()、offer()、put()方法不会阻塞。
 */
public class TransferQueueTest3 {
    public static void main(String[] args) throws InterruptedException {
        LinkedTransferQueue<String> strs = new LinkedTransferQueue<>();

        strs.put("aaa"); //如果用put的话就不会阻塞了
        new Thread(() -> { //后启动消费者
            try {
                System.out.println(strs.take());
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }).start();

    }
}